package com.moxiao.yfjh.module.activity.controller.admin.activityEnroll.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

import org.springframework.format.annotation.DateTimeFormat;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 相亲报名信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ActivityEnrollBaseVO {

    @Schema(description = "活动编码")
    private String no;

    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12087")
    private Long userId;

    @Schema(description = "用戶昵称", example = "张三")
    private String userName;

    @Schema(description = "用户性别")
    private Byte sex;

    @Schema(description = "报名时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime registTime;

    @Schema(description = "报名活动-缴费金额")
    private BigDecimal payAmount;

    @Schema(description = "缴费时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime payTime;

    @Schema(description = "支付方式：1-微信；2-支付宝", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Byte payType;

    @Schema(description = "支付单号")
    private String payNo;

    /**
     * 状态：0=已报名，1=已取消，2=已退回，3=退款申请中
     */
    @Schema(description = "状态：0=已报名，1=已取消，2=已退回，3=退款申请中", requiredMode = Schema.RequiredMode.REQUIRED, example = "012")
    private Byte status;

    @Schema(description = "是否被选择")
    private Byte selected;
    /**
     * 是否是被选择成为活动人员0=是，1=否
     */
    @Schema(description = "是否是被选择成为活动人员0=是，1=否")
    private Byte activityStatus;
    /**
     * 是否配对:0=是，1=否（不用配对）
     */
    @Schema(description = "是否配对:0=是，1=否（不用配对）")
    private Byte isPair;

    @Schema(description = "配对人员id:user_id")
    private Long pairId;

    @Schema(description = "活动名称")
    private String activityName;

    private Long activityId;
}
